Abstract
En este laboratorio sed tiene como finalidad que se utilice información del Libro de Ordenes de Criptomonedas de diversos exchanges internacionales, con el objetivo primario de visualizar y modelar la microestructura del mercado por medio del comportamiento de Libro de Ordenes y sus caracteristicas como; Matching Engine, Levels, Ask-Bid Volumnes, etc.
Se identificara la microestructura de mercado para los cambios en los precios, la metodología empleada consiste en la construcción y posterior análisis de las series de tiempo utilizando los libros de órdenes obtenidos en el punto anterior de los siguientes elementos de la Microestructura de Mercado por cada asset y exchange:
Se realizaran visualizaciones y se estimará el Effective Spread de Roll con:
Este es un campo de constante exploración y mayor uso en estudios empíricos de mercados específicos, direccionados a la gestión, explicación y pronóstico de inversiones en activos; a través de variables propias de la negociación local en cada mercado, tales como volatilidad, flujo de órdenes, spread bid-ask y costos de la operación. Adicionalmente se destaca la trascendencia del análisis de microestructura en periodos inferiores al intraday, como estrategia de inversión que propone una periodicidad más corta en los flujos de efectivo en el negocio aprovechando condiciones propias del mercado.
La microestructura de los mercados abarca las reglas, que afectan la liquidez, los precios y las ganancias,y los sistemas de traiding usados por un mercado para predecir precios y diseñar sus estrategias de traiding. Es importante que el inversor entienda como funciona el mercado para mejorar sus sistemas de traiding. El mercado tiene una dependencia de los "market makers" ya que los precios se ejecutan de acuerdo a ellos este es un broker en el que las operaciones de compra o venta de instrumentos financierosno se realizan directamente en el mercado sino en la mesa de operaciones del propio broker, hay "market makers" para divisas, para índices, para accione, etc.
Los tipos de ordenes:
Los tipos de mercados que existen son:
Geográfico
Tipo de cliente
Tipo de recurso
Es importante también que haya transparencia, que en el pre-traiding se puede consultar el libro de ordenes precios bid-ask, flujo de órdenes, identidad de los traders y en el post-traiding haya velocidad y disponibilidad en que se difundan los precios, volúmen y hora de trade.
Un libro de órdenes es una lista de operaciones, ya sean electrónicas o manuales, que una bolsa utiliza para registrar el interés del mercado en un valor específico o instrumento financiero. Las acciones se cotizan normalmente en un libro de órdenes por volumen y por nivel de precios.
La microestructura de mercado también es importante por las regulaciones:
Entre otras más, todo lo anterior hace que la microestructura de mercado facilite, regule y determine comportaminetos de los traders para que puedan implementar estrategias de traiding más eficientes.
Al conocer dinámica del precio en la microestructura de mercado, se cambiará el enfoque de los precios mensuales y diarios hacia Horizontes de tiempo de minutos y segundos, el Modelo Roll analiza el precio de las acciones determinando que el valor fundamental de la acción representa el valor presente de los flujos de efectivo futuros que se esperan y serán duraderos, en cambio, el precio de transacción.
Este modelo se implementa primero con el planteamiento de dos equaciones iniciales que componen el modelo, una para modelar el valor fundamental del activo financiero y otra para modelar el precio de transacción del mismo activo. Después se calcula la diferencia de precios, se calcula la multiplicación de las diferencias de precios y se hace el cálculo del Var.
1.1 Objetivo
En este laboratorio sed tiene como finalidad que se utilice información del Libro de Ordenes de Criptomonedas de diversos exchanges internacionales, con el objetivo primario de visualizar y modelar la microestructura del mercado por medio del comportamiento de Libro de Ordenes y sus caracteristicas como; Matching Engine, Levels, Ask-Bid Volumnes, etc.
En este laboratoria se espera que utilicemos el libro de órdenes especificamente de 3 cripromonedas de 3 eschanges con el objetivo de poder estudiar, analizar y visualizar la micorestructura del mercado por medio del comportamiento del libro de ordenes y sus componentes:
Todo esto para poder estimar un Effective Spread de Roll.
OBJETIVO GENERAL
- El objetivo general es elaborar un estudio que nos ayude a analizar la microestructura de las criptomonedas.
OBEJTIVOS ESPECIFICOS
Hacer una comparación del comportamiento de las diferentes monedas en los diferentes exchanges
Analizar la microestructura mediante el modelo de Roll para determinar el spread y effective spread
In order to run this notebook, it is necessary to have installed and/or have the requirements.txt file with the following:
%%capture
# Install all the pip packages in the requirements.txt
import sys
!{sys.executable} -m pip install -r requirements.txt
import ccxt
import pandas as pd
import numpy as np
import plotly.graph_objects as go
from datetime import datetime
import collections
import time
import functions as fn
import visualizations as vs
Los datos descragados son los order books de las diferentes monedas en los diferentes spreads, estas se corrieron 3600 segundos para tener los históticos de 1 hora de datos para cada uno y se realizó un dataframe para tener un resumen de los datos que mostrara:
También se descargaron los closes price de cada una de las monedas para poder utilizarlos en el siguiente dataframe que consistía de un resumen de:
MONEDAS
Las monedas utilizadas fueron: BTC/USDT,BTC/USDC,ETH/USDT, ya que nos pareció interesante su comportamiento y tiene una participación amplia en el mercado de criptos. Como se puede notar trabajamos con USDC Y USDT la diferencia rádica en que la primera es un tipo de stablecoin. Es un activo digital y un sistema de pago respaldado por activos del mundo real en USD. La segunda es una moneda digital que utiliza tecnología blockchain. Se trata de un activo descentralizado y tiene un protocolo de código abierto.
EXCHANGES
Por otra parte, se decidieron utilizar los exchanges de Bitmart, bitforex y bibox que son grandes compañías dentro de estos mercados y que nos parecieron interesantes su comparación.
Para el análisis de las cryptomonedas se analizaron tres tipos, dos bitcoins una stablecoin y otra tradicional con uso de tecnología blockchain, así como también una moneda ethereum. Analizando su comportamiento surge la duda de señalar en que radica la diferencia entre bitcoins y ethereums ya que son estas las dos más importantes del mundo. Bitcoin es la moneda más descentralizada que existe. El crecimiento de precio de ethereum ha sido bastante bajo debido a la emisión inflacionaria, al contrario de Bitcoin que maneja una emisión deflacionaria. En cuestion de emisión total de monedas Bitcoin se encuentra por mucho más adelante que ethereum con un valor total de alrededor de 21 millones de monedas, emisión que va disminuyendo hasta llegar a cero al contrario de ethereum que cuenta con emisión infinita, al tener control de inflación se evita que se genere una inflación superior al 2% anual.
En términos de transacciones Bitcoin se encuentra limitada a alrededor de 8 transacciones por segundo mientras que las cifras de ethereum duplican este valor al llegar a entre 16 y 20 transacciones por segundo.
En esta sección se consumió el libro de órdenes de los siguientes exchanges para criptomonedas: bitmart, bitforex y bibox. Y, de por lo menos 3 exchanges y para 3 criptomonedas: ['BTC/USDT','BTC/USDC','ETH/USDT']
cryptos=['BTC/USDT','BTC/USDC','ETH/USDT']
limite=20
exchanges=[ccxt.bitmart(),ccxt.bitforex(),ccxt.bibox()]
BTC/USDT
ob_c1=fn.order_book(cryptos[0],exchanges)
BTC/USDC
ob_c2=fn.order_book(cryptos[1],exchanges)
ETH/USDT
NOTA: Comenzaron a fallar las conexiones, esta moneda para los tres exchange no se pudo correr. Esto lo atribuimos a que ethereum carga consigo la actividad de miles de tokens adicionales que sobrecargan la red, algo que en Bitcoin no sucede.La red de ethereum es muy pesada y falla las conexiones mientras que la red de bitcoin es de la más poderosas que existen ya que tiene un gran poder computacional.
ob_c3=fn.order_book(cryptos[2],exchanges)
Así mismo, el OHLC de las mismas criptomonedas para el mismo timeframe que el libro de órdenes.
BTC/USDT
c1m1=fn.close_prices(exchanges,cryptos[0],ob_c1,0)
c1m2=fn.close_prices(exchanges,cryptos[0],ob_c1,1)
c1m3=fn.close_prices(exchanges,cryptos[0],ob_c1,2)
BTC/USDC
c2m1=fn.close_prices(exchanges,cryptos[1],ob_c2,0)
c2m2=fn.close_prices(exchanges,cryptos[1],ob_c2,1)
c2m3=fn.close_prices(exchanges,cryptos[1],ob_c2,2)
ETH/USDT
c3m1=fn.close_prices(exchanges,cryptos[2],ob_c3,0)
c3m2=fn.close_prices(exchanges,cryptos[2],ob_c3,1)
c3m3=fn.close_prices(exchanges,cryptos[2],ob_c3,2)
Para poder completar esta sección, se creo un diccionario con el LO y el Close price de cada activo y cada exchange.
d={'Exchange_1 '+str(exchanges[0]):{'Crypto1':ob_c1[0],
'Closes':c1m1[0],
'Crypto2':ob_c2[0],
'Closes':c2m1[0],
'Crypto3':ob_c3[0],
'Closes':c3m1[0]},
'Exchange_2 '+str(exchanges[1]):{'Crypto1':ob_c1[1],
'Closes':c1m2[0],
'Crypto2':ob_c2[1],
'Closes':c2m2[0],
'Crypto3':ob_c3[1],
'Closes':c3m2[0]},
'Exchange_3 '+str(exchanges[2]):{'Crypto1':ob_c1[2],
'Closes':c1m3[0],
'Crypto2':ob_c2[2],
'Closes':c2m3[0],
'Crypto3':ob_c3[2],
'Closes':c3m3[0]}}
d
d['Exchange_1 BitMart']['Crypto2']
Construcción del DataFrame utilizando los Libros de Ordenes obtenidos en el punto anterior de los siguientes elementos de la Microestructura de Mercado por cada asset y exchange:
- Levels
- Bid volume
- Ask volume
- Total volume
- Mid price
- VWAP
BTC/USDT
vac1=fn.verifavance2(ob_c1,limite,60,exchanges)
vac1[0]
BTC/USDC
vac2=fn.verifavance2(ob_c2,limite,60,exchanges)
vac2[0]
ETH/USDT
vac3=fn.verifavance2(ob_c3,limite,60,exchanges)
vac3[0]
Gráficas que agrupan cada exchange por moneda para el MID PRICE
5.1 BTC/USDT
vs.visualizationMID(vac1[0],cryptos[0])
5.2 BTC/USDC
vs.visualizationMID(vac2[0],cryptos[1])
5.3 ETH/USDT
vs.visualizationMID(vac3[0],cryptos[2])
Gráficas que agrupan cada exchange por moneda para el VWAP
6.1 BTC/USDT
vs.visualizationVWAP(vac1[0],cryptos[0])
6.2 BTC/USDC
vs.visualizationVWAP(vac2[0],cryptos[1])
6.3 ETH/USDT
vs.visualizationVWAP(vac3[0],cryptos[2])
Gráficas que agrupan cada exchange por moneda para el Ask Volumen
7.1 BTC/USDT
vs.visualizationAV(vac1[0],cryptos[0])
7.2 BTC/USDC
vs.visualizationAV(vac2[0],cryptos[1])
7.3 ETH/USDT
vs.visualizationAV(vac3[0],cryptos[2])
Gráficas que agrupan cada exchange por moneda para el Bid Volumen
8.1 BTC/USDT
vs.visualizationBV(vac1[0],cryptos[0])
8.2 BTC/USDC
vs.visualizationBV(vac2[0],cryptos[1])
8.3 ETH/USDT
vs.visualizationBV(vac3[0],cryptos[2])
Gráficas que agrupan cada exchange por moneda para el Volumen Total
9.1 BTC/USDT
vs.visualizationVT(vac1[0],cryptos[0])
9.2 BTC/USDC
vs.visualizationVT(vac2[0],cryptos[1])
9.3 ETH/USDT
vs.visualizationVT(vac3[0],cryptos[2])
Para el modelado de la microestructura se tomo en cuenta el modelo propuesto por Roll para el spread
Utilizando la serie resagada en t-5
NOTA:
BTC/USDT
va3_1=fn.verifavance3(vac1[1],c1m1,c1m2,c1m3)
va3_1
BTC/USDC
va3_2=fn.verifavance3(vac2[1],c2m1,c2m2,c2m3)
va3_2
ETH/USDT
va3_3=fn.verifavance3(vac3[1],c3m1,c3m2,c3m3)
va3_3
Se utilizaron entonces 3 diferentes exchanges (bitmart, bitforex y bibox) para estudiar el comportamiento de las crypto monedas en diferentes espacios o casas de cambio virtuales, que es en donde se realizan los intercambios de crypto y se genera el precio de mercado.
Hay muchos tipos de cryptos en uso actualmente, entre ellas destacan las stablecoins o "monedas estables" como ya mencionabamos. En este laboratorio utilizamos tres monedas una que es BTC/USDT, BTC/USDC y ETH/USDT. Fueron interesante de estudiar ya que son distintas en su funcionamiento:
La USDC es un tipo de stablecoin. Es un activo digital y un sistema de pago respaldado por activos del mundo real en USD. Las stablecoins son criptomonedas que tienen un precio fijo. Es digital y estable. Tiene baja volatilidad y su precio está ligado al dólar estadounidense. Sin mebargo la USDC está destinada a proporcionar pagos más rápidos, más eficientes y de menor costo que los sistemas financieros tradicionales. USDC es una de las stablecoins más confiables. De hecho, es la segunda stablecoin más grande y con mayor volumen de capitalización de mercado. Esto la hace una opción interesante para aquellos que buscan incursionar en el mundo de las cryptos estables.
La USDT es una moneda digital que utiliza tecnología blockchain. Se trata de un activo descentralizado y tiene un protocolo de código abierto. Actualmente, USDT es la tercera criptomoneda más grande por volumen de negociación en el ecosistema crypto.Gracias a la estabilidad del USDT, los inversores pueden mantener sus activos digitales de manera similar a las monedas fiduciarias regulares, pero al mismo tiempo conservan la capacidad de intercambiarlas fácilmente por otras monedas en el mercado de criptomonedas. Fueron estas características clave las que hicieron que esta moneda fuera popular; sin embargo, no es completamente inmune al riesgo. En otras palabras, es un token no regulado. El objetivo principal de la creación de esta criptomoneda fue facilitar transacciones con una tasa fijada en el dólar estadounidense, con el fin de eludir la intervención estatal y la supervisión regulatoria.
Con las criptomonedas tradicionales, el precio del activo fluctúa. Con las stablecoins, en cambio, existe un precio determinado que limita las fluctuaciones, muy comunes en la mayoría de las cryptos.
Estas fueron interesantes de analizar sobre todo de la comparación entre los distintos exchanges y las posibles razones por las cuáles algunos se comportan parecido pero al mismo tiempo diferentes, como el que tengan mayor volatilidad o caídas ya sea por su integración, participantes, rapidez de transmisión de información, etc.
Visualizaciones
Se graficaron los datos de los tickers y de las exchanges, donde comparabamos el bid, ask, midle price y el VWAP, se puede observar que en las exchanges son parecidas en el comportamiento de las monedas pero en diferente dimensión, unas son más grandes que otras.
Al comparar por Ticker de los precios de cierre se puede observar que siguen tendencias muy parecidas la mayor parte del tiempo pero si se nota como las USDT son mucho más volatiles sobre todo en los volumenes, por el contrario en las USCD las discrepancias son menores, posiblemente por una mayor integración entre las plataformas así como una mayor participación en el mercado lo que se traduce en que no hay oportunidad de arbitraje y el precio refleja la información del mercado.
De la misma forma, con el close price se puede observar que el spread en el caso de las USDC es mas grande en comparación con USDT que tiene cambios más pequeños. Posiblemente eso se deba al volumen que se mueve, la cantidad de participantes, la liquidez, así como la posibilidad de la incorporación de Market Makers que distorsionan el spread.
Se puede observar que los USDT las ordenes estaban más concentradas en un determinado rango mientras en USDC en los cambio había una mayor movilidad de los distintos niveles y los volúmenes no están tan agrupados.
El modelo de Roll funciona para predecir el cambio en el spread de mejor manera, sin embargo la aproximación no es perfecta, respecto a los exchanges las diferencias entre el modelo y el dato real son muy diferentes, posiblemente porque el existen Market Makers que distorsionan el Spread, estas monedas es un caso interesante ya que el modelo de roll es más volátil y la escala cambia pero de alguna manera se logra ver una tendencia.